package br.ufpb.di.knowledgetv.classificador;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.ufpb.di.knowledgetv.instancias.Distribuicoes;
import br.ufpb.di.knowledgetv.instancias.Perfil;

@SuppressWarnings("serial")
public class ClassificadorServlet extends HttpServlet {
	
	public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
		
		String sexo           = req.getParameter("sexo");
		String faixaEtaria    = semEspacoEmBranco( req.getParameter("faixaEtaria") );
		String estadoCivil    = req.getParameter("estadoCivil");
		String escolaridade   = semEspacoEmBranco( req.getParameter("escolaridade") );
		String renda          = resolveRenda( req.getParameter("renda") );
		String numeroDeFilhos = semEspacoEmBranco( req.getParameter("numeroDeFilhos") );
		String classificacao  = req.getParameter("classificacao");
		
		Perfil novoPerfil = new Perfil(classificacao, escolaridade, estadoCivil,
				faixaEtaria, numeroDeFilhos, renda, sexo);
		
		double[] dist = new Classificador(novoPerfil).classificar();
		
		Distribuicoes distribuicoes = new Distribuicoes(dist);
		
		req.setAttribute("dist", distribuicoes.getDistribuicoes());
		
		RequestDispatcher rd = req.getRequestDispatcher("/classificacao.jsp");
		rd.forward(req, resp);
		
	}
	
	public String resolveRenda(String in){
		return semEspacoEmBranco(in).substring(0, 8);
	}
	
	public String semEspacoEmBranco(String in){
		return in.replace(' ', '_');
	}

}
